Skip to content

Audit data and AI Community Toolkit integration docs#1375

Open
IEvangelist wants to merge 7 commits into
mainfrom
dapine/community-docs-data-ai-suites
Open

Audit data and AI Community Toolkit integration docs#1375
IEvangelist wants to merge 7 commits into
mainfrom
dapine/community-docs-data-ai-suites

Conversation

@IEvangelist

@IEvangelist IEvangelist commented Jul 17, 2026

Copy link
Copy Markdown
Member

Important

This PR is ready for review, but it should be rebased and merged after #1372 because the series relies on the shared mapping and contained-logo guardrails.

Summary

  • Audit all 18 Ollama, KurrentDB, Meilisearch, RavenDB, SQLite, and SurrealDB get-started, host, and connect pages against CommunityToolkit/Aspire commit b9d40479805b74ea20b7dc57cb659d46e6f11c43.
  • Correct runtime, connection, client, and resource-chain guidance, and replace C#-only capability callouts with complete synchronized C# and TypeScript AppHost examples.
  • Make every new AppHost example runnable, use language-neutral framing, and preserve the precise source-backed exceptions for APIs that are not exported.
  • Keep every integration logo contained and use theme-specific KurrentDB assets so the complete artwork remains visible in light and dark themes.

Validation

  • Verified TypeScript API shapes against the pinned Toolkit source, [AspireExport] metadata, and checked-in TypeScript AppHost fixtures.
  • Focused page metadata, SEO, and twoslash suites pass: 3 files, 65 tests.
  • Combined landing rehearsal passes 8 focused suites, 153 tests, check-data, mapping uniqueness, and git diff --check.
  • Browser audit confirms all 18 routes render and their logos remain contained and legible at desktop/mobile widths in light/dark themes; synchronized AppHost tabs render without console errors.

No local pnpm build was run.

IEvangelist and others added 6 commits July 17, 2026 12:45
…t/Aspire b9d4047

Audit all 18 get-started/host/connect pages for Ollama, KurrentDB,
Meilisearch, RavenDB, SQLite, and SurrealDB against CommunityToolkit/Aspire
commit b9d40479805b74ea20b7dc57cb659d46e6f11c43, fixing runtime-affecting
inaccuracies verified against source.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3d7f9a0c-8c6d-4579-9b43-b41a361fa19b
Add fit="contain" to the hero <Image> logos on all 18 Ollama, KurrentDB,
Meilisearch, RavenDB, SQLite, and SurrealDB get-started/host/connect pages.
Without it, Astro crops non-square assets to the 100x100 box (kurrent 3420x755,
meilisearch 838x604, ravendb 555x109, surrealdb 512x110); fit="contain"
preserves aspect ratio so the complete artwork renders.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3d7f9a0c-8c6d-4579-9b43-b41a361fa19b
…tions

Convert C#-only AppHost snippets on the KurrentDB, SQLite, SurrealDB, and Meilisearch host pages into synchronized <Tabs syncKey="aspire-lang"> C# (AppHost.cs) and TypeScript (apphost.mts) peers, and remove the redundant capability notes that previously listed the TypeScript APIs instead of showing them.

TypeScript shapes verified against CommunityToolkit/Aspire [AspireExport] attributes and committed apphost.mts example fixtures at commit b9d40479805b74ea20b7dc57cb659d46e6f11c43. SurrealDB WithLogLevel(LogLevel) and the callback WithSurrealist overload are C#-only ([AspireExportIgnore]); their polyglot string/options replacements are exported and used in the TypeScript tabs. RavenDB and Ollama host pages already had correct synchronized tabs (verified, unchanged).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3d7f9a0c-8c6d-4579-9b43-b41a361fa19b
Replace the trailing '// After adding all resources, run the app...' placeholder in the newly paired C#/TypeScript AppHost snippets on the KurrentDB, SQLite, SurrealDB, and Meilisearch host pages with real run calls: builder.Build().Run(); in C# blocks and await builder.build().run(); in TypeScript blocks (15 C#/15 TS pairs, 30 total), so the tabs are complete runnable examples.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3d7f9a0c-8c6d-4579-9b43-b41a361fa19b
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: b620d5b1-e665-4478-974d-cb5d2b825c28
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: b620d5b1-e665-4478-974d-cb5d2b825c28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR audits and updates multiple Community Toolkit integration docs (AI + databases) to align guidance and examples with the pinned CommunityToolkit/Aspire commit, including adding synchronized C# and TypeScript AppHost examples and improving integration logo rendering.

Changes:

  • Replace C#-only callouts with synchronized C# + TypeScript AppHost tabs and runnable samples across multiple hosting pages.
  • Correct connection-property naming and configuration guidance (for example Uri/DB_URI, updated connection string formats, and updated client settings shapes).
  • Improve logo rendering (use fit="contain" broadly; use theme-specific KurrentDB assets via ThemeImage).

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/frontend/src/content/docs/integrations/databases/surrealdb/surrealdb-host.mdx Adds C#/TS AppHost tabs and makes SurrealDB host examples runnable; improves logo containment.
src/frontend/src/content/docs/integrations/databases/surrealdb/surrealdb-get-started.mdx Ensures SurrealDB logo remains contained via fit="contain".
src/frontend/src/content/docs/integrations/databases/surrealdb/surrealdb-connect.mdx Updates SurrealDB connection property names and connection string/config guidance.
src/frontend/src/content/docs/integrations/databases/sqlite/sqlite-host.mdx Adds C#/TS AppHost tabs, updates package ID casing/name, and corrects injected env var naming.
src/frontend/src/content/docs/integrations/databases/sqlite/sqlite-get-started.mdx Removes outdated TS limitation note; keeps capability list aligned; improves logo containment.
src/frontend/src/content/docs/integrations/databases/sqlite/sqlite-connect.mdx Updates settings/property names (for example DisableHealthChecks) and trims references to removed capabilities.
src/frontend/src/content/docs/integrations/databases/ravendb/ravendb-host.mdx Updates TS samples (awaited calls) and improves logo containment.
src/frontend/src/content/docs/integrations/databases/ravendb/ravendb-get-started.mdx Ensures RavenDB logo remains contained via fit="contain".
src/frontend/src/content/docs/integrations/databases/ravendb/ravendb-connect.mdx Updates RavenDB client settings shape (for example Urls, DatabaseName).
src/frontend/src/content/docs/integrations/databases/meilisearch/meilisearch-host.mdx Adds TS AppHost examples for Meilisearch hosting scenarios and removes “TS not available” note.
src/frontend/src/content/docs/integrations/databases/meilisearch/meilisearch-get-started.mdx Ensures Meilisearch logo remains contained via fit="contain".
src/frontend/src/content/docs/integrations/databases/meilisearch/meilisearch-connect.mdx Updates Meilisearch connection property name to Uri and aligns env var usage.
src/frontend/src/content/docs/integrations/databases/kurrentdb/kurrentdb-host.mdx Adds C#/TS AppHost tabs, updates container image reference, and switches to theme-aware logo handling.
src/frontend/src/content/docs/integrations/databases/kurrentdb/kurrentdb-get-started.mdx Switches to theme-aware KurrentDB logo and updates container image reference.
src/frontend/src/content/docs/integrations/databases/kurrentdb/kurrentdb-connect.mdx Switches to theme-aware KurrentDB logo rendering.
src/frontend/src/content/docs/integrations/ai/ollama/ollama-host.mdx Improves logo containment and updates TS GPU vendor example to use the exported enum.
src/frontend/src/content/docs/integrations/ai/ollama/ollama-get-started.mdx Ensures Ollama logo remains contained via fit="contain".
src/frontend/src/content/docs/integrations/ai/ollama/ollama-connect.mdx Updates keyed-client registration sample parameter naming (connectionName).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/frontend/src/content/docs/integrations/databases/ravendb/ravendb-host.mdx Outdated
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Frontend HTML artifact ready

The latest frontend build uploaded the frontend-dist artifact for PR #1375. Use the VS Code button below to open this PR with GitHub Artifacts Explorer and browse the built HTML locally.

VS Code: Open PR #1375 artifacts

This comment updates automatically when a new frontend build artifact is uploaded.

@IEvangelist IEvangelist left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Automated docs‑accuracy review — PR #1375

Reviewer: doc-pr-reviewer skill — two independent passes: Phase A verifies every factual claim against source‑of‑truth code; Phase B exercises the rendered site as a new user, blind to source.

Phase A source of truth: CommunityToolkit/Aspire @ b9d40479805b74ea20b7dc57cb659d46e6f11c43 (the commit this PR pins; resolved SHA identical).
Phase B site: PR head b5ac771 served locally with pnpm dev (Astro dev, no pnpm build); all 18 changed routes exercised with Playwright.

Claims extracted: 24 non‑cosmetic → ✅ 18 verified · 🟡 6 verified‑with‑nuance · ❌ 0 contradicted · ⛔ 0 unverifiable
Render pass: 18/18 routes compile and return 200, 0 console errors, synchronized C#/TypeScript tabs render and sync correctly, added internal links resolve. 1 warning (KurrentDB logo containment).

Verdict: 🟢 COMMENT. This is a high‑accuracy audit — the API shapes, container image, connection‑property renames, package‑casing fixes, and the removal of the now‑inaccurate "SQLite extensions"/"TypeScript not available" content all match the pinned Toolkit source. Two non‑blocking items are called out inline; details below.

Note on the verdict: my source pass initially flagged the Meilisearch client‑package label (claim 10) as contradicted. On closer inspection it's a casing‑only difference on a case‑insensitive NuGet id with a correct link, so I've reclassified it to verified‑with‑nuance — hence COMMENT rather than REQUEST_CHANGES. It's still worth a one‑character fix (inline).


Phase A — Claim verification (vs CommunityToolkit/Aspire)

Everything substantive checks out against the pinned commit. Two things to look at:

🟡 Meilisearch client‑package labelmeilisearch-connect.mdx:148 — see inline comment. Dropping the wrong Meilisearch.NET label is a good fix; the canonical id is MeiliSearch (capital S).

The other 5 nuance items are "nuance" only because the doc states a concrete literal that the Toolkit produces by convention rather than as a grep‑able string:

  • Env‑var literals MEILISEARCH_URI, SQLITE_DATASOURCE, DB_URI derive from Aspire's [RESOURCE]_[PROPERTY] convention. The property names they build on (Uri, DataSource) match source exactly, so the literals are correct.
  • ConnectionStrings__db is the .NET env‑var form of ConnectionStrings:db; the client reads GetConnectionString("db"), so it's right.
  • The RavenDB "await each call separately" rewrite is correct in practice (the exported polyglot methods return the awaited builder), though no generated .d.ts is checked in to prove the non‑chaining wording verbatim.
Full 24‑claim verification table (click to expand)
# PR location Claim Verdict Toolkit evidence
1 ollama-connect.mdx AddKeyedOllamaApiClient param is connectionName ✅ verified CommunityToolkit.Aspire.OllamaSharp/AspireOllamaSharpExtensions.cs:38
2 ollama-host.mdx TS exports OllamaGpuVendor; withGPUSupport({ vendor: OllamaGpuVendor.AMD }); members AMD,Nvidia ✅ verified Hosting.Ollama/GpuVendor.cs:3,10-19; api/...Hosting.Ollama.cs:11-15; playground apphost.mts:27
3 ollama-host.mdx Integration prefixes hf.co/ when model lacks hf.co//huggingface.co/ ✅ verified Hosting.Ollama/OllamaResourceBuilderExtensions.Model.cs:67-85
4 kurrentdb-get-started.mdx / kurrentdb-host.mdx Image is docker.kurrent.io/kurrent-latest/kurrentdb ✅ verified Hosting.KurrentDB/KurrentDBContainerImageTags.cs:8-10
5 kurrentdb-host.mdx Data volume path /var/lib/kurrentdb ✅ verified Hosting.KurrentDB/KurrentDBBuilderExtensions.cs:101-107
6 kurrentdb-host.mdx TS addKurrentDB, withDataVolume, withDataBindMount exist ✅ verified Hosting.KurrentDB/api/...KurrentDB.cs:13-20; example apphost.mts:14,23,26
7 meilisearch-connect.mdx Property Uri → env MEILISEARCH_URI 🟡 nuance property Uri in Meilisearch/MeilisearchResource.cs:55-63; env name is convention‑derived
8 meilisearch-host.mdx Data path /meili_data ✅ verified Hosting.Meilisearch/MeilisearchBuilderExtensions.cs:110-116
9 meilisearch-host.mdx TS addMeilisearch, withDataVolume, withDataBindMount, { masterKey } ✅ verified Hosting.Meilisearch/api/...Meilisearch.cs:13-20; example apphost.mts:15-18
10 meilisearch-connect.mdx Client package label Meilisearch 🟡 nuance canonical id is MeiliSearch (Directory.Packages.props:95; nuget.org install snippet). Case‑insensitive; link correct
11 ravendb-connect.mdx Client settings use Urls[] + DatabaseName, not ConnectionString ✅ verified RavenDB.Client/RavenDBClientSettings.cs:14,34
12 ravendb-host.mdx Bind mount maps to /var/lib/ravendb/data ✅ verified Hosting.RavenDB/RavenDBBuilderExtensions.cs:375-382
13 ravendb-host.mdx TS addRavenDB,addDatabase,withDataVolume,withDataBindMount,withLogVolume; separate‑await samples valid 🟡 nuance Hosting.RavenDB/api/...RavenDB.cs:13-35; fixtures present; no checked‑in .d.ts for non‑chaining wording
14 sqlite-host.mdx Package id casing CommunityToolkit.Aspire.Hosting.Sqlite ✅ verified project path + CommunityToolkit.Aspire.slnx:288
15 sqlite-connect.mdx DisableHealthChecks (+ SqliteConnectionSettings.DisableHealthChecks) ✅ verified Microsoft.Data.Sqlite/SqliteConnectionSettings.cs:6-20
16 sqlite-host.mdx TS addSqlite, withSqliteWeb, { databasePath, databaseFileName } ✅ verified Hosting.Sqlite/SqliteResourceBuilderExtensions.cs:20-21,95-97; example apphost.mts:5-12
17 sqlite-host.mdx Referenced path env var SQLITE_DATASOURCE 🟡 nuance property DataSource in Hosting.Sqlite/SqliteResource.cs:21-26; env name convention‑derived
18 sqlite-host.mdx Removed "SQLite extensions" section no longer describes current APIs ✅ verified no WithNuGetExtension/WithLocalExtension/CTASPIRE002 in Hosting.Sqlite; API lists only AddSqlite/WithSqliteWeb
19 surrealdb-connect.mdx Property Uri = ws://{Host}:{Port}/rpc; env DB_URI 🟡 nuance Hosting.SurrealDb/SurrealDbServerResource.cs:86-92,121-128; env name convention‑derived
20 surrealdb-connect.mdx Conn string Server=ws://.../rpc;User=...;******;Namespace=...;Database=... ✅ verified builder SurrealDbServerResource.cs:66-68 (+ ns/db); test AddSurrealServerTests.cs:121-126
21 surrealdb-connect.mdx Read conn string via ConnectionStrings__db 🟡 nuance client GetConnectionString(connectionName) in SurrealDb/AspireSurrealDbExtensions.cs:19,72-75
22 surrealdb-connect.mdx SurrealDbClientSettings binds Aspire:Surreal:Client w/ DisableHealthChecks,HealthCheckTimeout ✅ verified SurrealDb/SurrealDbClientSettings.cs:12-38
23 surrealdb-connect.mdx Client package SurrealDb.Net ✅ verified CommunityToolkit.Aspire.SurrealDb.csproj:9
24 surrealdb-host.mdx TS addSurrealServer,addNamespace,addDatabase,withSurrealist,withDataBindMount,withLogLevel(string); levels Trace…None ✅ verified Hosting.SurrealDb/api/...SurrealDb.cs:13-41; SurrealDbBuilderExtensions.cs:456-470 (Enum.GetNames<LogLevel>())

Phase B — Doc‑tester render pass (blind to source)

Focus: the 18 pages changed by this PR (Ollama, KurrentDB, Meilisearch, RavenDB, SQLite, SurrealDB × get‑started/host/connect). Tester: doc‑tester skill via Playwright against local pnpm dev (http://localhost:4331).

Category Passed Failed Warnings
Page render (HTTP 200 + compile) 18 0 0
Console errors 18 0 0
Synchronized C#/TypeScript tabs pass 0 0
Added internal links resolve pass 0 0
Logo containment 5 0 1

Passed checks

  • All 18 routes compile on demand and return 200 with no console errors.
  • Synchronized tabs: verified on sqlite-host (deep‑checked) — clicking TypeScript switches every syncKey="aspire-lang" group and the TS panels render real code (addSqlite, withSqliteWeb, { databasePath, databaseFileName }). Same pattern renders on the KurrentDB / Meilisearch / SurrealDB host pages.
  • Renamed literals render coherently: Hosting.Sqlite package casing, SQLITE_DATASOURCE, Meilisearch Uri table, SurrealDB Uri + Server=…/rpc connection string all display consistently across each integration's host/connect pages.
  • Added links resolve: /reference/cli/commands/aspire-add/, /get-started/resources/, /get-started/app-host/, and the ../*-connect/ / ../*-host/ cross‑links all return 200.
  • fit="contain" logos (Ollama, Meilisearch, RavenDB, SQLite, SurrealDB) render aspect‑preserved and fully visible — e.g. Meilisearch's 838×604 source is served as a 100×72 image, so the whole mark shows.

⚠️ Warning 1 — KurrentDB logo is center‑cropped, not contained

Location: KurrentDB get‑started / host / connect header logo (ThemeImage).
Issue: This PR's goal #4 is "keep every integration logo contained … so the complete artwork remains visible in light and dark themes," and KurrentDB was switched to ThemeImage specifically for that. But unlike the fit="contain" <Image> pages, ThemeImage renders the KurrentDB wordmark as a 100×100 center‑crop. The source assets are 3420×755, so only the middle of the word survives and the logo reads as "ur|" rather than "Kurrent" — in both light and dark themes.
Evidence (rendered): img[alt="KurrentDB logo"]naturalWidth×Height = 100×100, object-fit: fill, served webp is a square cover‑crop; by contrast Meilisearch's contained logo serves as 100×72. Element screenshot shows only the centered ur| glyphs.
Suggestion: Have ThemeImage pass a contain/inside fit to Astro's image service (or set width/height that preserve the ~4.5:1 wordmark aspect ratio) so the full KurrentDB artwork renders, matching the other five integrations.

Recommendations

  1. Non‑blocking: fix the KurrentDB ThemeImage containment so the full wordmark shows (it currently defeats the PR's own logo goal for that one integration).
  2. Nit: align the Meilisearch client‑package label to the canonical MeiliSearch casing.
  3. Everything else is accurate and renders cleanly — nice, thorough audit. ✅

Replace the trailing '// After adding all resources, run the app...' placeholder in every AppHost example on the RavenDB host page with real run calls (builder.Build().Run(); in C#, await builder.build().run(); in TypeScript; 6 C#/5 TS), so the samples are complete and runnable as written.

Canonicalize the MeiliSearch client NuGet package label and link on the Meilisearch connect page to the official case-sensitive id 'MeiliSearch' (nuget.org install snippet and the Toolkit's Directory.Packages.props use this casing). The C# 'MeilisearchClient' type and 'using Meilisearch;' namespace are unchanged, matching the SDK.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3d7f9a0c-8c6d-4579-9b43-b41a361fa19b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants